{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "eda23d36-120b-4b62-a89c-39ed16b0f287",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      sin(x) \n",
      "x ↦ ─────────\n",
      "     ⎛ 2⎞    \n",
      "     ⎝x ⎠    \n",
      "    ℯ     - 1\n"
     ]
    }
   ],
   "source": [
    "# https://zhuanlan.zhihu.com/p/400461386\n",
    "from sympy import *\n",
    "\n",
    "x = symbols('x')\n",
    "f = symbols('f', cls=Function)\n",
    "f=Lambda(x, sin(x)/(exp(x**2)-1))\n",
    "pprint(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "7fa1d798-b49b-4bce-99f9-868992ef99c9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<sympy.plotting.plot.Plot at 0x7f7c7496c430>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(f(x), ylim=(-4,4))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "221bc0db-346e-4d01-9524-04f0c61bbafa",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "     x    \n",
      "    ℯ  - 1\n",
      "x ↦ ──────\n",
      "      x   \n"
     ]
    }
   ],
   "source": [
    "f=Lambda(x, (exp(x)-1)/x)\n",
    "pprint(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "84e7251c-8658-4cfe-ab18-3062749b3e1a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<sympy.plotting.plot.Plot at 0x7f7c7486d220>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(f(x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "7d416b2a-aaf3-4fa2-9f14-36a3bcbcbea0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\infty$"
      ],
      "text/plain": [
       "oo"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "limit(f(x), x, oo)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "8277475a-0ea5-468c-839a-0523f23da1ca",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "     2    \n",
      "x ↦ x  - 6\n",
      "x ↦ 2⋅x - 1\n"
     ]
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\text{False}$"
      ],
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f1 = Lambda(x, x**2 - 6)\n",
    "f2 = Lambda(x, 2*x - 1)\n",
    "pprint(f1)\n",
    "pprint(f2)\n",
    "Eq(limit(f1(x), x, 3, '-'), f2(3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "8da75024-abf1-43bc-97b2-66dda96966ed",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 1.73205080756888$"
      ],
      "text/plain": [
       "1.73205080756888"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "k = symbols('k', integer=True)\n",
    "f = Lambda(x, (3+3*x)/(3+x))\n",
    "x1 = 1\n",
    "for i in range(1000):\n",
    "    x1=f(x1)\n",
    "x1.evalf()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "492a85ae-bfef-40ae-b794-04bb0b84d364",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-1, 1)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f1 = Lambda(x, x)\n",
    "limit(f1(x), x, -1, '-'), 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "738dc846-2214-4846-b228-d965eb2c98da",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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JydjYGAAX331FeLi4vxe69X6+/tx3333YcOGDfjGN74xavzK8Fq9ejUef/xxyLKM2bNn+7NMl8b7+Sv1u+2pd999F4sXL8acOXNGjQXyfgeAOXPmoL29HUlJSWhvb0dCQsKoOWq1GkePHnXebm1txbJly3xWg19OA3qybI0kSVi+fDn2798PYLCrRKkjtfr6etxyyy1ITk52OW61WnHp0iXn3w8dOjSic0YpV56f/93vfueyJk+WH/K3uro6vPjii6itrUVUVJTLOYG0z6/eh58YzyNh+jSEq/6+usVYSzgpSQiBRx99FAsXLsSTTz7pcs758+edn601NDTA4XAERMh68vPX6/XYs2cPhBD4+OOPER0d7Tx1FQjcna0J1P0+7Mrf57H+bS4oKMChQ4dgsVhgsVhw6NAhFBQU+K6IcTowvPL2228LtVotwsLCREJCwogFRJ9//nmRmpoqbr75ZnHgwAHn9lWrVom2tjYhhBCff/65yMnJEWlpaaKwsFD09vZ6W4JPFBcXi127do3Y1tbWJlatWiWEGKwzOztbZGdni4yMDPH8888rUeYoDzzwgFi0aJHIysoSX//618W5c+eEECNrF2Kwayo9PV2kpqYGRO1paWkiOTlZ3HrrreLWW291dtEF8j6/ch/e9n/2iQde/Vhs27ZNpKWlCSGE6OnpEYWFhSItLU3k5OSIzz//XNF6hRDigw8+EABEVlaWc1+/8847YteuXc7f91deeUVkZGSI7OxssWTJEnHs2DGFqx401s//ytodDod4/PHHRWpqqli0aNGIjmSlXb58WcTGxooLFy44twXqfi8qKhKJiYlCpVIJtVotXn31VSHLssjNzRUajUbk5eUJs9kshBDi+PHj4tFHH3Xe97XXXhNpaWkiLS1NvP76654+pUfdgFzBgmgChBDIfvYQ1n5NjefWLIJOpxt1jSERucUVLIgmm9lqw6XegRGdgETkewwrogkwDS1gm8KvsieaVAwrogkYXm19PsOKaFIxrIgmwGS2IjREQnJMpNKlEAU1hhXRBJjkbtwUG4VpoXwrEU0mvsOIJqBZtmJ+nOtrw4jIdxhWRNdICIGzZis/ryLyA4YV0TX68lIfum12dgISeen48ePIzs5Gb28vJEmaLknSKUmS3C5Jw7AiukbOTkBeY0XklZycHOj1evzgBz8AgBcB/EYI8T/u7uP1QrZENIjXWBFdu7KyMuTk5ACADsAT483nkRXRNTKarQgLDcGNs9i2TuQts9mMy5cvA8ANACLGm8+wIrpGxk4rboqLQmiIsqupE01FmzZtwo9//GMA+C2AF8abz7CioNXV1YX8/Hykp6cjPz/f5TcnNzY24o477kBmZiays7PxxhtvOMcefvhhpKSkQKvVQqvVorGxccR9TWYrP68iugZ79uzBtGnT8K1vfQsAygHkSJKU6+4+DCsKWuXl5cjLy0NTUxPy8vJQXl4+ak5UVBT27NmDU6dOoa6uDt///vdx4cIF5/hLL72ExsZGNDY2QqvVOrc7HAJnzd1Imc1rrIi89dBDD+Gtt94CAAgh7EKIJUKII+7uw7CioFVTU4Pi4mIAQHFxMaqrq0fNufnmm5Geng4AuPHGG5GQkIDOzs5xH7v9Yi/6Bhy8xorITxhWFLQ6Ojqc3xSbmJiIjo4Ot/MbGhpgs9mQlpbm3LZ161ZkZ2djy5Yt6Ovrc25nJyCRf7F1naa0FStW4Pz586O2b9++fcRtSZLcfq18e3s7HnzwQVRWViIkZPD/cDt27EBiYiJsNhtKSkrwwgsvoKysDMDgMkvAYFhVVFSgoqICADw6KiMi7zGsaEqrr68fc2zOnDlob29HUlIS2tvbkZCQ4HLexYsXcc8992D79u1YunSpc/vwUVl4eDgeeeQR/PSnP3WOmWQrIqaFYM4NESgpKUFJSQkAQKfT+eJlEdFVeBqQgpZer0dlZSUAoLKyEmvWrBk1x2azYe3atXjooYdQWFg4Yqy9vR3A4BqA1dXVWLTo76vBmOTBTsAQtq0T+QXDioJWaWkpDh8+jPT0dNTX16O0tBQAYDAY8NhjjwEA9u3bhz/84Q/YvXv3qBb1DRs2ICsrC1lZWZBleXhpGACDFwSzbZ3IfyQhhLtxt4NE16MBuwMLy+rw2D+m4pm7bxkxptPpYDAYFKqMaEry6PQEj6yIvNR2oQf9doEUHlkR+Q3DishLztXW2bZO5DcMKyIvmZxhxdUriPyFYUXkJZO5G9PDQhE/I1zpUoiuGwwrIi8Z5cGvsnd3kTER+RbDishLJrOVyywR+RnDisgLtgEHWrq6GVZEfsawIvJCi6UbDgFeEEzkZwwrIi+Y2LZOpAiGFZEXjPxqECJFMKyIvGAyWxEdOQ0xUdOULoXousKwIvIC29aJlMGwIvKCSe5GShxXriDyN4YVkYd6++0491UPmyuIFMCwIvLQF13dEILNFURKYFgReYidgETKYVgReYjXWBEph2FF5CGjbEXc9DDMjGDbOpG/MayIPDTctk5E/sewIvKQyWzlmoBECmFYEXmg2zaAjot9SOG3AxMpgmFF5AGT3A0ASJk9Q+FKiK5PDCsiDxidnYA8siJSAsOKglZXVxfy8/ORnp6O/Px8WCwWl/NCQ0Oh1Wqh1Wqh1+ud241GI5YsWQKNRoMdO18FwO+xIlIKw4qCVnl5OfLy8tDU1IS8vDyUl5e7nBcZGYnGxkY0NjaitrbWuf2ZZ57Bli1bcObMGYjpszEjdADTw1X+Kp+IrsCwoqBVU1OD4uJiAEBxcTGqq6s9vq8QAkeOHEFhYSEAYEZSKuwXOiajTCLyAMOKglZHRweSkpIAAImJiejocB02vb290Ol0WLp0qTPQzGYzZs2aBZVq8Ejqyx6g39Lml7qJaDSe06ApbcWKFTh//vyo7du3bx9xW5KkMb+D6uzZs1Cr1WhubkZubi6ysrIQHR3tHL/Y2w9LzwDCrLLL+1dUVKCiogIA0NnZea0vhYjcYFjRlFZfXz/m2Jw5c9De3o6kpCS0t7cjISHB5Ty1Wg0ASE1NxbJly3Dy5Encd999uHDhAgYGBpxrAs4Od7i8f0lJCUpKSgAAOp1uIi+HiMbA04AUtPR6PSorKwEAlZWVWLNmzag5FosFfX19AABZlnHs2DFkZGRAkiQsX74c+/fvd7atF/yvxf4rnohGkIQQ7sbdDhIFMrPZjPvvvx9ffPEF5s2bh3379iE2NhYGgwG/+tWv8Oqrr+Kjjz7Cpk2bEBISAofDge9///t49NFHAQDNzc0oKiqCPCcHjoxV+Mu2XETPcH+dlU6ng8Fg8MfLIwoWrs/PXz2JYUXk3pY3GtFg7MKx0txx5zKsiLzmUVjxNCDROJplK1euIFIYw4poHCaZq60TKY1hReSGxWrDVz39/Cp7IoUxrIjcMJoHOwEZVkTKYlgRuWHsHF5tnWFFpCSGFZEbJrMVIRIwN4YNFkRKYlgRuWGUrUiOiUKYim8VIiXxHUjkhsls5SlAogDAsCIagxACJrkbqQwrIsUxrIjG0Hm5D5f7BjA/jp9XESmNYUU0BpPcDYCdgESBgGFFNIbhrwbhNVZEymNYEY3BaLZCFSJBPStS6VKIrnsMK6IxmGQrboqLgiqUbxMipfFdSDQGo2xFChewJQoIDCsiFxwOwWusiAIIw4rIhY5LvejtdzCsiAIEw4rIBeNQJyAvCCYKDAwrIheGw4pHVkSBgWFF5IJJtiJcFYKkmRFKl0JEYFgRuWSUuzEvLgohIZLSpRARGFZELpnMVsxn2zpRwGBYEV3F7hD4wtyNlHiGFVGgYFhR0Orq6kJ+fj7S09ORn58Pi8Uyas77778PrVbr/BMREYHd+2pgszvwfu0+pKSkOMcaGxv9/yKICADDioJYeXk58vLy0NTUhLy8PJSXl4+as3z5cjQ2NqKxsRFHjhxBVFQUbsrUAQCiBi7hpZdeco5rtVo/vwIiGsawoqBVU1OD4uJiAEBxcTGqq6vdzt+/fz9WrVqF9ssDAIBI++XJLpGIPMSwoqDV0dGBpKQkAEBiYiI6Ojrczq+qqsL69ethlK2ICgtFmKMXW7duRXZ2NrZs2YK+vj5/lE1ELjCsaEpbsWIFFi1aNOpPTU3NiHmSJEGSxm5Db29vxyeffIKCggKY5MFOwPIdO/DZZ5/h+PHj6OrqwgsvvODyvhUVFdDpdNDpdOjs7PTp6yOiQSqlCyCaiPr6+jHH5syZg/b2diQlJaG9vR0JCQljzt23bx/Wrl2LadOmwShbkXljtPOoLDw8HI888gh++tOfurxvSUkJSkpKAAA6nW4Cr4aIxsIjKwpaer0elZWVAIDKykqsWbNmzLl79+7F+vXr0W93oMXSg/mzo9De3g4AEEKguroaixYt8kvdRDQaw4qCVmlpKQ4fPoz09HTU19ejtLQUAGAwGPDYY48555lMJrS0tOCuu+5Cq6UHdofA/Ljp2LBhA7KyspCVlQVZlvGDH/xAqZdCdN2ThBDuxt0OEgWb9z/7Eo/sPo63vnsHbpsX6/X9dTodDAbDJFRGFLQ8WtOMR1ZEV2geXm2dSy0RBRSGFdEVTLIVN0SoEDs9TOlSiOgKDCuiK5jMVqTMnu62zZ2I/I9hRXQFo8zV1okCEcOKaEjfgB1tF3r47cBEAYhhRTTkC3M3hABSGVZEAYdhRTTEONwJyLAiCjgMK6IhJvNgWKXwMyuigMOwIhpilLsREzUN0VHTlC6FiK7CsCIaYpQv8xQgUYBiWBENMcndSGFYEQUkhhURgB6bHecv9vLzKqIAxbAiwt+bK3gakCgwMayIMLgmIACeBiQKUAwrIlyx2jrDiiggMayIMHhkNXtGOGaEq5QuhYhcYFgRYfAzKy6zRBS4GFZEGLwgeP7sKKXLIKIxMKzouneptx/y5T5+XkUUwBhWdN0zyd0AuCYgUSBjWNF1z8hrrIgCHsOKrnvD11jxG4KJAhfDiq57JtmKpOgIRIaFKl0KEY2BYUVB680330RmZiZCQkJgMBjGnHfyTBvOn/kEGo0G5eXlzu1GoxFLliyBRqPBunXrYLPZ/FE2EbnAsKKgtWjRIrz99tu48847x5xjt9thlK245x9zcPr0aezduxenT58GADzzzDPYsmULzpw5g5iYGLz22mv+Kp2IrsKwoqC1cOFCLFiwwO2cIx9+DIRPR3ZqIsLCwlBUVISamhoIIXDkyBEUFhYCAIqLi1FdXe2HqonIFYYVXdf+ajwP4O/NFcnJyWhra4PZbMasWbOgUqlGbCciZUhCCKVrILpmkiTVA0h0MbRVCFEzNOcogH8RQoz64EqSpEIAdwshHhu6/SCAJQB+BOBjIYRmaPtcAO8KIRa5eIwSACVDNyNczSGiieGqnTSlCSFWTPAh2gDMveJ28tA2M4BZkiSphBADV2x3VUMFgIoJ1kFEbvA0IF3vjgNIlyQpRZKkMABFAGrF4CmH9wEUDs0rBlCjUI1E1z2GFQUtSZLWSpLUCuAOAO9IknRwaPuNkiQdAICho6bvATgI4FMA+4QQp4Ye4hkAT0qSdAZAHAC2AxIphJ9ZERFRwOORFRERBTyGFRERBTyGFRERBTyGFRERBTyGFRERBTyGFRERBTyGFRERBTyGFRERBbz/Dy5uKM3vjBK7AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<sympy.plotting.plot.Plot at 0x7f7c74752eb0>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(f1(x), ylim=(-1, 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e376f0a6-f55d-48fe-8e64-9a50244625df",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
